﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QLKS.SysLib
{
    static public class RegisterLib
    {
        static string id = string.Empty;
        static string serial = string.Empty;
        static public bool IsRegisted { get { return CheckRegisted(); } }
        static public string HashCode(string key)
        {
            if (key.Length < 4)
                return string.Empty;
            string result = string.Empty;
            List<int> ArrInt = new List<int>();
            //Lập Công thức HashCode {Tự nghĩ ra công thức bảo mật}
            foreach (char c in key)
                ArrInt.Add((int)c);

            decimal value = 1;
            for (int i = 0; i < ArrInt.Count; i++)
            {
                value += (decimal)ArrInt[i];
                value = value == 0 ? value + 2 : value;
                value *= i * System.Math.Abs((ArrInt.Count + 2) - i);
                result += value.ToString();
            }
            return result;
        }

        static public void RegisterValue(string _id, string _serial)
        {
            id = _id;
            serial = _serial;
        }
        //Kiểm tra bản quyền
        static private bool CheckRegisted()
        {
            if (string.IsNullOrEmpty(id) || string.IsNullOrEmpty(serial))
                return false;
            if (HashCode(id) == "")
                return false;
            if (HashCode(id).Equals(serial))
                return true;
            return false;
        }
    }
}
